package com.hsurosy.hsuchain.nft.base.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 金额转换工具类
 *
 * @Author Hsu琛君珩
 * @Date 2024-10-04 18:53
 * @Description
 * @Version: v1.0.0
 */
public class MoneyUtils {

    /**
     * 元转分
     *
     * 将金额从元转换为分（1元 = 100分）。
     *
     * @param number 金额（元）
     * @return 转换后的金额（分）
     */
    public static Long yuanToCent(BigDecimal number) {
        return number.multiply(new BigDecimal("100")).longValue();
    }

    /**
     * 分转元
     *
     * 将金额从分转换为元（100分 = 1元）。
     *
     * @param number 金额（分）
     * @return 转换后的金额（元），保留两位小数，四舍五入
     */
    public static BigDecimal centToYuan(Long number) {
        if (number == null) {
            return null;
        }
        return new BigDecimal(number.toString()).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
    }
}
